<template>
  <div class="container">
    <div class="stars">
      <div
        v-for="(item, index) in starnum"
        :key="index"
        class="star"
        ref="star"
      ></div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      starnum: 800,
      distance: 800
    };
  },
  mounted() {
    let _this = this;
    let starArr = _this.$refs.star;
    // console.log(starArr)
    starArr.forEach(item => {
      var speed = 0.2 + Math.random() * 1;
      var thisDistance = _this.distance + Math.random() * 300;
      item.style.transformOrigin = `0 0 ${thisDistance}px`;
      item.style.transform = `translate3d(0,0,-${thisDistance}px) rotateX(${Math.random() *
        -50}deg) rotateY(${Math.random() * 360}deg) scale(${speed},${speed})`;
    });
  }
};
</script>

<style lang="less" scoped>
.container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: radial-gradient(
    200% 100% at bottom center,
    #f7f7b6,
    #e96f92,
    #1b2947
  );
  background: radial-gradient(
    220% 105% at top center,
    #1b2947 10%,
    #75517d 40%,
    #e96f92 65%,
    #f7f7b6
  );
}
@keyframes rotated {
  from {
    transform: perspective(400px) rotateX(-40deg) rotateY(0) rotateZ(20deg);
  }
  to {
    transform: perspective(400px) rotateX(-40deg) rotateY(-360deg)
      rotateZ(20deg);
  }
}
.stars {
  transform: perspective(500px);
  transform-style: preserve-3d;
  position: absolute;
  perspective-origin: 50% 100%;
  left: 50%;
  bottom: 0;
  animation: rotated 90s infinite linear;
  .star {
    width: 2px;
    height: 2px;
    background-color: #f7f7b8;
    position: absolute;
    top: 0;
    left: 0;
    backface-visibility: hidden;
  }
}
</style>
